package miao.demo.aop;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

@Component
@Aspect
public class MyAdvice {
    //@Pointcut("execution(void miao.demo.dao.BookDao.update())")//描述接口（推荐）
    //@Pointcut("execution(void miao.demo.dao.impl.BookDaoImpl.update())") //描述实现类
    //@Pointcut("execution(void miao.demo.dao.BookDao.update(*))") //报错 参数用* 表示--必有一个参数
    //@Pointcut("execution(* miao.demo.*.update())") //miao.demo包下的所有update()方法
    //@Pointcut("execution(* *..*.*(..))") //匹配的所有方法（一般不会使用）
    //@Pointcut("execution(* *..*.u*(..))") //匹配以e结尾的方法
    //@Pointcut("execution(* *..*.*e(..))")
    @Pointcut("execution(* miao.demo.*.*Service.find*(..))")//业务层的所查询方法 （常用）
    private void pt(){}

    @Before("pt()")
    public void before(){
        System.out.println(System.currentTimeMillis());
    }
}
